A smart meter is usually an electrical meter that records consumption of a resource in intervals of an hour or less and communicates that information at least daily back to the utility for monitoring and billing purposes. Smart meters enable two-way communication between the meter and the central system and can gather data for remote reporting. Such an advanced metering infrastructure differs from traditional automatic meter reading (AMR) in that it enables two-way communications with the meter.
In microcontroller systems, under certain circumstances there is need for a processing engine or instance, which has certain privileges above the ordinary user process, e.g., exclusive access to certain hardware features or to certain memory locations. In smart metering, for example, such an execution mode may be used to host a trusted security and/or measurement module.
Along with the certified or trusted module, an untrusted or uncertified application may be provided by a meter manufacturer or a utility company. Alternatively, a user may download an application software to analyze, monitor, and use the data generated at the smart meter. However, the untrusted application is required not to interfere, intentionally or unintentionally, with the trusted module. For example, a user has to have no control over the operations of the trusted module.
This issue may be solved by using feature rich microprocessors (e.g., ARM Cortex M3) that include a memory protection unit. The additional memory protection unit supports different execution modes with multiple levels of access privileges to certain resources. Using a feature rich microprocessor usually implies more silicon area, more power consumption and higher cost in manufacturing and operation.